/*
 * @Author: liuying 247220246@qq.com
 * @Date: 2025-03-06 11:04:04
 * @LastEditors: liuying 247220246@qq.com
 * @LastEditTime: 2025-03-25 17:55:07
 * @FilePath: \my-book-react\src\pages\search\utils.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import storage from '@/utils/storage';
import { HISTORY_SEARCH_KEY } from '@/pages/search/constants';
const deleteArrItem = (arr: string[], val: string) => {
  const index = arr.findIndex((item) => item === val);
  if (index !== -1) {
    arr.splice(index, 1);
  }
};
// 导出一个名为setHistory的函数，用于设置历史搜索记录
// 导出一个名为setHistory的函数，用于设置历史搜索记录
export const setHistory = (value: string) => {
  // 如果传入的值为空，则直接返回
  if (!value) return;
  // 从storage中获取历史搜索记录，如果没有则返回一个空数组
  let arr: string[] = storage.get(HISTORY_SEARCH_KEY) || [];
  // 从数组中删除传入的值
  deleteArrItem(arr, value);
  // 将传入的值添加到数组的开头
  arr.unshift(value);
  // 将更新后的数组存储到storage中
  storage.set(HISTORY_SEARCH_KEY, arr);
  // 触发一个自定义事件，通知其他组件更新storage
  window.dispatchEvent(new CustomEvent('local-storage', { detail: { key: HISTORY_SEARCH_KEY } }));
};

// 导出一个函数deleteHistory，用于删除历史记录
// 导出一个函数，用于删除历史记录
export const deleteHistory = (val: string) => {
  // 获取历史记录数组
  const arr = storage.get(HISTORY_SEARCH_KEY);
  // 删除数组中的指定元素
  deleteArrItem(arr, val);
  // 将删除后的数组重新保存到storage中
  storage.set(HISTORY_SEARCH_KEY, arr);
  // 触发自定义事件，通知其他组件更新
  window.dispatchEvent(new CustomEvent('local-storage', { detail: { key: HISTORY_SEARCH_KEY } }));
};

export const clearHistory = () => {
  // 清空历史记录
  storage.remove(HISTORY_SEARCH_KEY);
  window.dispatchEvent(new CustomEvent('local-storage', { detail: { key: HISTORY_SEARCH_KEY } }));
};
